home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-06 | 3.4 KB | 73 lines | [TEXT/GEOL] |
- Item forwarded by SANDY to DIEZMANN PZZA.SLT
-
- Item forwarded by DAWSON.M to SANDY
-
- Item 4909590 3-Oct-90 23:04PDT
-
- From: AUST0338 AUPtnr - Tactics Int'l,Shillito,IDV
-
- To: MACAPP.TECH$ MacApp Technical
-
- Sub: MPW 3.2 Linker bug
-
- To: MACAPP.TECH$
- From: AUST0338 - David Shillito
- Date: 4th October 1990
-
- Subject: MPW 3.2 linker bug
-
- Back on 26th September James Plamondon asked if anyone else had encountered a
- bug using the MPW3.2/Pascal 3.1/MacApp2.0 combination. The bug caused crashes
- with Bus Error or Illegal Instruction when trying to call a method that resides
- in a small segment.
-
- Back then I thought he must be imagining it and that he would soon find some
- bug in his code that was causing it but the same thing just happened to me.
-
- In my case the offending method was the only routine in a segment. The segment
- had a size of 60 bytes. When I combined this segment with a few other small
- segments the problem went away.
-
- The code involved has not been changed for months and the whole program had
- been running fine ever since MPW 3.2 came along. Mostly I have been running
- without the debugger during this period but I have used the debugger a few
- times and the code which broke this time would have been executed then.
-
- What I think has changed is this:
- 1. My reason for installing MPW 3.2 and its linker was to get more jump table
- space because I had exhausted the available space w hen running with the
- debugger.
- 2. When I installed MPW 3.2 I verified that I could get the additional space by
- inspecting the progress messages from the linker and also the link map.
- 3. Since I already had around 29K of globals I went on a witch-hunt to see how
- much global space I could retrieve so that it would be available for jump table
- space. I stopped after a got back a few K, knowing I could retrieve more later
- on, if I needed it. I also revised a whole lot of code (for other reasons) and
- this resulted in many objects and methods being deleted. However, this meant
- that there was no longer any problem with jump table space exceeding 32K (for a
- while).
- 4. Since that time I have mostly run in non-debug mode. On the couple of
- occasions I used debug mode the jump table requirements were probably still
- under 32K.
- 5. Today I added a large amount of new code with 5 new objects and 20 or 30 new
- methods. Today the link progress messages tell me that I need 4096 jump table
- entries, ie. 4 over the 32K limit.
-
-
- ••• So I think the problem with small segments only occurs when the linker goes
- into its new mode of reorganizing jump table space. This will only tend to
- occur for large programs compiled with the MacApp debugger. •••
-
- By the way, this is a very convincing argument, if ever I needed one, for
- staying in MACAPP.TECH$. I only wasted two hours on this because when I traced
- everything as far as the small segment I realized that James had described the
- same problem only a week ago. If I had not seen that message I would never have
- thought that segment size could be the significant aspect of the problem. If I
- had to rely on MACDTS... a minimum of several days turnaround under normal
- circumstances and right now they are having a break of THREE WEEKS. This one
- item of James's has paid for my MACAPP.TECH$ traffic for at least a few months
- if not the whole year by saving me time.
-
- David Shillito
-
-